Properties
audience: R2

API конфигурации

Приложение SKIF.TAG забирает настройки и отчитывается об их применении двумя запросами. Оба принимают POST с телом в JSON или в виде формы, оба требуют IMEI и пароль терминала — отдельных ключей доступа нет. Пароль задаётся в конфигураторе, см. Настройка терминалов.

Свойства запросов

Получение конфигурации

POST /api/v1/config/lookup

Параметр Тип Описание
imei string IMEI терминала. Пробелы по краям отбрасываются. Обязательный.
password string Пароль терминала. Обязательный.
config_hash string Контрольная сумма конфигурации, которая уже стоит на устройстве. Необязательный.
config_version integer Отметка времени конфигурации на устройстве. Необязательный, используется, если не передан config_hash.

Если переданный config_hash или config_version совпадает с серверным, ответ короткий:

{ "status": "up_to_date", "config_version": 1775548065, "config_hash": "3f9a…" }

Иначе возвращается полная конфигурация, а терминал переводится в состояние «Конфигурация доставлена на устройство»:

Поле ответа Тип Описание
imei integer IMEI терминала.
password string Пароль терминала.
server string Адрес приёмника в виде хост:порт.
config_version integer Отметка времени последнего изменения конфигурации.
min_distance integer Минимальное расстояние между точками, метры.
min_time integer Минимальное время между точками, секунды.
operation_mode string Режим работы: light, standard или custom.
settings_change_available boolean Разрешён ли пользователю выбор режима работы.
tracker_always_enable boolean Запрещено ли пользователю отключать отслеживание.
admin_lock_enabled boolean Задан ли PIN блокировки настроек.
settings_pin integer, null Сам PIN, если задан.
sos_cancel_available boolean Можно ли отменить отправку сигнала SOS.
sos_cancellation_duration integer Сколько секунд даётся на отмену.
sos_send_address boolean Отправлять ли адрес вместе с сигналом.
extra object Дополнительные параметры. Пустой объект, если их нет.
config_hash string Контрольная сумма конфигурации без imei, password и config_version.

Поля sos_* в панели конфигуратора не задаются — они приходят со значениями по умолчанию. В интерфейсе администратора их нет.

Отчёт о применённой конфигурации

POST /api/v1/config/report

Приложение присылает конфигурацию, которая фактически стоит на устройстве. Обязательные параметры те же — imei и password. Остальные поля совпадают по именам с полями ответа lookup; всё, что не входит в этот перечень, отбрасывается.

Ответ:

{ "status": "accepted" }

Когда присланный config_hash (или config_version) впервые совпадает с серверным, терминал переходит в состояние «Конфигурация применена на устройстве», и дата фиксируется. Повторные отчёты дату не сдвигают. Если значения расходятся, в карточке терминала это видно в таблице Параметр / Серверная / На устройстве.

Ошибки

Код Ответ Когда
422 {"error": "missing_params"} Не передан imei или password.
401 {"error": "invalid_credentials"} Терминал с таким IMEI не найден либо пароль не подошёл. Попытка попадает в журнал аудита.

Ограничения

Частота запросов ограничена и считается по двум счётчикам сразу: не более 60 запросов в минуту с одного адреса и не более 10 запросов в минуту на один IMEI. Лимиты общие для lookup и report.

Лимит на адрес поднят под ситуацию, когда весь парк телефонов выходит в сеть через один адрес оператора. Защиту от подбора пароля даёт счётчик на IMEI.

Смотрите также